#ifndef LISTAMARCADORES_H
#define LISTAMARCADORES_H

#include <QObject>
#include <QGraphicsScene>
#include <QDebug>
#include <QMessageBox>

#include "informacaopais.h"
#include "marcadorpais.h"

class ListaMarcadores : public QObject
{

    Q_OBJECT

public:

    ListaMarcadores(QGraphicsScene* scene, QObject* parent = 0);
    void criarMarcador (QString nome_pais, Qt::GlobalColor color);
    void alterarCor (QString nome_pais, Qt::GlobalColor color);
    void hideAll ();
    void showAll ();
    void totalTropas (QString nome_pais, int numero_soldados);
    void operarNumeroTropas (QString nome_pais, int diferenca_soldados);
    QString nome_jogador;

public slots:

    void mostrarTela (MarcadorPais* marcador_clicado, Qt::MouseButton botao_clicado);
    void mudarEstadoPais (QString text);
    void tropasRecebidas (int novas_tropas);
    void tropasAlocadas (MarcadorPais* marcador_alterado);
    void alocacaoConfirmada ();
    void mudancaTropaPais (QString texto);
    void realizarAtaque (QString pais_atacante, QString pais_defensor, int num_tropas_ataque);
    void paisConquistado (QString texto);

signals:

    void esconderBotaoConfirmar ();
    void mostrarBotaoConfirmar ();
    void mostrarBotaoPassarVez();
    void esconderBotaoPassarVez();
    void enviarMudancasAlocacao (QList<MarcadorPais*> paises_alterados);
    void ataqueDeclarado (QString texto);
    void mudancaSoldadosDisponiveis (int nova_quantidade);

private:

    QList<MarcadorPais*>* lista_marcadores;
    QList<MarcadorPais*> paises_alterados;
    QGraphicsScene* scene;
    QString donoPais (QString nome_pais);
    bool mostrar_ataque;
    int tropas_disponiveis;
    QMessageBox* aviso;
};

#endif // LISTAMARCADORES_H
